﻿#pragma once
#include <glad/glad.h>
#include <glm/glm.hpp>
#include <string>

namespace DYGraphics
{
	class _declspec(dllexport) Shader
	{
	public:
		Shader(const char* vertexPath, const char* fragmentPath);

		void use() const;

		void SetBool(const std::string& name, bool value) const;
		void SetInt(const std::string& name, int value) const;
		void SetFloat(const std::string& name, float value) const;
		void SetFloat3(const std::string& name, const glm::vec3& value) const;
		void SetFloat4(const std::string& name, const glm::vec4& value) const;
		void SetMat4(const std::string& name, const glm::mat4& value) const;
	private:
		unsigned int ID;
	};
}